<?php

  include ("modlogin/logger.php");

/** Classe CRUD - Create, Recovery, Update and Delete
  * @author - Rodolfo Leonardo Medeiros
  * @date - 25/09/2009
  * Arquivo - codigo.class.php
  * @package crud
  */
  
  
  class crud
  {
	private $sql_ins="";
	private $tabela="";
	private $sql_sel="";

    // Caso pretendamos que esta classe seja herdada por outras, então alguns atrubutos podem ser protected

	/** Método construtor
	  * @method __construct
	  * @param string $tabela
	  * @return $this->tabela
	  */  			
  	public function __construct($tabela) // construtor, nome da tabela como parametro
  	{
  		$this->tabela = $tabela;
		return $this->tabela;
	}
  		
	/** Método inserir
	  * @method inserir
	  * @param string $campos
	  * @param string $valores
	  * @example: $campos = "codigo, nome, email" e $valores = "1, 'João Brito', 'joao@joao.net'"
	  * @return void
	  */  		
	/*public function inserir($campos, $valores) // funçao de inserçao, campos e seus respectivos valores como parametros
	{
		$this->sql_ins = "INSERT INTO " . $this->tabela . " ($campos) VALUES ($valores)";
		if(!$this->ins = mysql_query($this->sql_ins))
		{
			die ("<center>Erro na inclusão " . '<br>Linha: ' . __LINE__ . "<br>" . mysql_error() . "<br>
				<a href='index.php'>Voltar ao Menu</a></center>");
		}else{
			print "<script> alert(Cadastro efetuado com sucesso);</script>";
			//print "<script> alert(Cadastrp efetuado com sucesso);location='index.php';</script>";
		}
	}*/
	public function log($usuario, $acao){
		include('conexao_banco.php');
		$acao = str_replace("'",'', $acao);
		$ip = $_SERVER['REMOTE_ADDR'];
		$sql = "INSERT INTO log set ip='".$ip."', usuario='".$usuario."', acao='".$acao."';";
//		echo '<script>alert('.$sql.')</script>';
		mysql_query($sql);

	}
	public function inserir($campos) // funçao de inserçao, campos e seus respectivos valores como parametros
	{
		mysql_query("SET NAMES 'utf8'");
		$this->sql_ins = "INSERT INTO " . $this->tabela . " SET $campos";
		if(!$this->ins = mysql_query($this->sql_ins))
		{
			//Logger($_SESSION['user']."| insert|".mysql_error(),5);
			$this->log($_SESSION['user'],"| insert|".mysql_error());
			die ("<center>Erro na inclusao " . '<br>Linha: ' . __LINE__ . "<br>" . mysql_error() . "<br>
				<a href='index.php'>Voltar</a></center>");
		}else{
			//Logger($_SESSION['user']."|".$this->sql_ins,5);
			$this->log($_SESSION['user'],$this->sql_ins);
			echo '<script language="javascript">';
			echo 'alert(Cadastro efetuado com sucesso);';
			echo 'document.location.reload();';
			echo '</script>';
		}
	}

	public function atualizar($camposvalores, $where = NULL) // funçao de ediçao, campos com seus respectivos valores e o campo id que define a linha a ser editada como parametros
	{
		mysql_query("SET NAMES 'utf8'");
		if ($where)
		{
			$this->sql_upd = "UPDATE  " . $this->tabela . " SET $camposvalores WHERE $where";			
		}else{
			$this->sql_upd = "UPDATE  " . $this->tabela . " SET $camposvalores";
	  	}
	  	
		if(!$this->upd = mysql_query($this->sql_upd))
		{
			//Logger($_SESSION['user']."| update |".mysql_error(),5);
			$this->log($_SESSION['user'],mysql_error());

			die ("<center>Erro na atualização " . "<br>Linha: " . __LINE__ . "<br>" .mysql_error() . "<br>
				<a href='index.php'>Voltar ao Menu</a></center>");
		}else{
			
			//Logger($_SESSION['user']."|".$this->sql_upd,5);
			$this->log($_SESSION['user'],$this->sql_upd);

			echo '<script language="javascript">';
			echo 'alert(Alteracao efetuado com sucesso);';
			echo 'document.location.reload();';
			echo '</script>';
		}
	}  	

	/** Método excluir
	  * @method excluir
	  * @param string $where
	  * @example: $where = " codigo=2 AND nome='João' "
	  * @return void
	  */  		
	public function excluir($where = NULL) // funçao de exclusao, campo que define a linha a ser editada como parametro
	{
		if ($where)
		{
			$this->sql_sel = "SELECT * FROM " . $this->tabela . " WHERE $where";
			$this->sql_del = "DELETE FROM " . $this->tabela . " WHERE $where";
		}else{
			$this->sql_sel = "SELECT * FROM " . $this->tabela;
			$this->sql_del = "DELETE FROM " . $this->tabela;
	  	}
	  	$sel=mysql_query($this->sql_sel);
		$regs=mysql_num_rows($sel);
		
	  if ($regs > 0){
		if(!$this->del = mysql_query($this->sql_del))
		{
			die ("<center>Erro na exclusão " . '<br>Linha: ' . __LINE__ . "<br>" .mysql_error() ."<br>
				<a href='index.php'>Voltar ao Menu</a></center>" );
		}else{
			print "<center>Registro Excluído com Sucesso!<br><a href='index.php'>Voltar ao Menu</a></center>";
		}
	  }else{
			print "<center>Registro Não encontrado!<br><a href='index.php'>Voltar ao Menu</a></center>";
	  }
	}  	
		
 }  		
  	
?>
